package com.moxiao.yfjh.module.activity.controller.admin.activityInfo.vo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.moxiao.yfjh.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;

import static com.moxiao.yfjh.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 相亲活动信息分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ActivityInfoPageReqVO extends PageParam {

    @Schema(description = "活动编码")
    private String no;

    @Schema(description = "活动名称", example = "张三")
    private String name;

    @Schema(description = "活动时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private String activeDate;

    @Schema(description = "活动开始时间段")
    private String activeTimeBegin;

    @Schema(description = "活动结束时间段")
    private String activeTimeEnd;

    @Schema(description = "男人数")
    private String menNum;

    @Schema(description = "女人数")
    private String womenNum;

    @Schema(description = "负责人")
    private String head;

    @Schema(description = "负责性别")
    private Byte headSex;

    @Schema(description = "套餐类型", example = "1")
    private String productType;

    @Schema(description = "套餐名称", example = "张三")
    private String packageName;

    @Schema(description = "活动费用")
    private String activeCost;

    @Schema(description = "截止时间")
    private String deadline;

    @Schema(description = "活动描述")
    private String activeDesc;

    @Schema(description = "活动封面")
    private String activeCover;

    @Schema(description = "审核状态（0未审核 1已通过 2已驳回）", example = "2")
    private Byte auditStatus;

    @Schema(description = "审核人")
    private String auditUser;

    @Schema(description = "审核时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] auditTime;

    @Schema(description = "驳回原因", example = "不好")
    private String rejectReason;

    @Schema(description = "状态", example = "1")
    private Byte status;

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

    @Schema(description = "费用分摊")
    private Byte costShare;

    @Schema(description = "活动来源")
    private String activeSource;

    @Schema(description = "当前登录人的id，用来判断活动是否是他创建的")
    private Long headUserId;

    @Schema(description = "是否是负责人")
    @TableField(exist = false)
    private Integer isHeader;


    @Schema(description = "用户id")
    @TableField(exist = false)
    private Long userId;

    /**
     * 管理端：1=狐狸洞列表，2=活动审核
     * app:用途位置
     */
    private Integer isPage;
    /**
     * app：1=进行中，2=报名中,3=已关闭,4=未审核,5=未缴费
     */
    private Integer appType;
}
